package cn.chinaunicom.sdsi.frm.workflow.deployment.dao;

import java.util.List;

import org.activiti.engine.repository.ProcessDefinition;

import cn.chinaunicom.sdsi.frm.workflow.deployment.controller.bean.ProcessDefinitionVO;

/**
 * 流程定义的数据库访问层
 * 
 * @author liyh
 */
public interface ProcessDefinitionDao {

	/**
	 * 根据查询条件分页查询版本最新的流程定义
	 * 
	 * @param vo
	 * @param firstResult
	 * @param maxResults
	 * @return
	 */
	List<ProcessDefinition> list4Page(ProcessDefinitionVO vo, int firstResult,
			int maxResults);

	/**
	 * 据传入参数查询符合条件的记录条数
	 * 
	 * @param vo
	 * @return
	 */
	long listFilteredCount(ProcessDefinitionVO vo);

	/**
	 * 据查询条件查询全部记录的条数
	 * 
	 * @param vo
	 * @return
	 */
	long listTotalCount(ProcessDefinitionVO vo);

	/**
	 * 根据流程定义文件的process查询最新发布的此流程数量
	 * 
	 * @param key
	 * @return
	 */
	long findNumByKey(String key);

	/**
	 * 根据已部署好的资源发布流程
	 * 
	 * @param resourcePath
	 * @return
	 */
	String deploymentProcessByResource(String resourcePath);
}
